commonlibsse_ng\re\b/
BGSTextureSet.rs

1use crate::re::BSTextureSet::BSTextureSet;
2use crate::re::DecalData::DecalData;
3use crate::re::BSResource;
4use crate::re::TESBoundObject::TESBoundObject;
5use crate::re::TESTexture::TESTexture;
6
7#[repr(C)]
8pub struct BGSTextureSet {
9    pub __base: TESBoundObject,
10    pub __base1: BSTextureSet,
11    /// - 8: BSTextureSet::Texture::UsedTotal
12    pub textures: [TESTexture; 8], // 0x040
13    pub decalData: *mut DecalData, // 0x0C0
14    pub flags: Flag,               // 0x0C8
15    pub pad0CA: u16,               // 0x0CA
16    /// - 8: BSTextureSet::Texture::UsedTotal
17    pub textureFileIDs: [BSResource::ID; 8], // 0x0CC
18    pub pad12C: u32,               // 0x12C
19}
20const _: () = assert!(std::mem::size_of::<BGSTextureSet>() == 0x130);
21
22#[commonlibsse_ng_derive_internal::to_bitflags]
23#[repr(u16)]
24#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
25pub enum Flag {
26    #[default]
27    None = 0,
28    NoSpecularMap = 1 << 0,
29    FacegenTextures = 1 << 1,
30    HasModelSpaceNormalMap = 1 << 2,
31}
32
33#[commonlibsse_ng_derive_internal::ffi_enum]
34#[repr(u32)]
35#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
36pub enum RecordFlag {
37    Deleted = 1 << 5,
38    Ignored = 1 << 12,
39}